1. Field of the Invention
This invention relates to a method of increasing the speed with which a computer checks for and handles numbers which are larger in size than the normal range of numbers usually handled by the machine and to a related method of increasing the speed with which a computer does conditional ALU branches.
2. Description of the Prior Art
A number of ways have developed in the past to deal with the situation which arises in a computer when the result of a computation yields a number which is outside the size of the numbers normally handled by the computer. Typically, the user's software tests for an overflow bit (such as a binary "1") resulting from a previous calculation and when such a bit is present implements a software routine to handle the overflow. This method is relatively complicated in that the software must check each calculation to see if the resulting number is larger in size than the numbers usually handled by the computer. The computer can then deal with the resulting number accordingly. Naturally, the software to implement these routines takes time to be executed and thus slows the computer.
Another alternative for dealing with this situation is, for example, to provide in the computer an additional higher position register or range which will handle that portion of a number beyond the normal first range of numbers handled by the machine.
A third alternative is to take the largest number within the range capable of being handled by the machine and treat this as the result of the operation.
These above alternatives are software implemented and thereby time consuming.
A fourth alternative utilizes a "delay to check overflow" included in each user instruction of a type which could generate an overflow.
In implementing these routines, it is customary to test each number generated by a calculation to determine that it is in the range of numbers capable of being operated on by the machine. Following the execution of an arithmetic instruction, the machine will then make a decision as to whether the result is correct or an "overflow" has occurred. Thus, a penalty is incurred in computational speed by the time necessary to carry out these tests whether or not an overflow occurs.
A computer is also slowed as a result of certain ALU operations which are followed by one of two different possible microinstructions where the particular next microinstruction selected depends on the results of the current microinstruction. Generally, additional time is required to test the results of the current ALU operation and then select the proper microinstruction to branch to for the next operation. This also slows the computer.